package com.fowo.api.model.requisition.product;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 调拨单子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class RequisitionProductImportPo {

  /** 所属调拨单 */
  @ExcelProperty("所属调拨单")
  private String parentRequisitionRqtSn;

  @ExcelIgnore
  @Schema(title = "所属调拨单")
  private String parentRequisition;

  /** 库存表 */
  @ExcelProperty("库存表")
  @Size(max = 50, message = "库存表长度不能超过50")
  private String cashStatementBatchNo;

  @ExcelIgnore
  @Schema(title = "库存表")
  private String cashStatement;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 50, message = "品名长度不能超过50")
  private String productId;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 产品标签 */
  @ExcelProperty("产品标签")
  @Size(max = 50, message = "产品标签长度不能超过50")
  private String productLabel;

  /** FNSKU */
  @ExcelProperty("FNSKU")
  @Size(max = 50, message = "FNSKU长度不能超过50")
  private String fnsku;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopName;

  /** 可用量 */
  @ExcelProperty("可用量")
  @LongString(message = "可用量数值格式不正确", label = "可用量")
  private String availbleNum;

  /** 可用调拨量 */
  @ExcelProperty("可用调拨量")
  @LongString(message = "可用调拨量数值格式不正确", label = "可用调拨量")
  private String availbleRqtNum;

  /** 次品量 */
  @ExcelProperty("次品量")
  @LongString(message = "次品量数值格式不正确", label = "次品量")
  private String defectiveQuantity;

  /** 次品调拨量 */
  @ExcelProperty("次品调拨量")
  @LongString(message = "次品调拨量数值格式不正确", label = "次品调拨量")
  private String defectiveRqtQuantity;

  /** 单品重量(g) */
  @ExcelProperty("单品重量(g)")
  @DecimalString(message = "单品重量(g)小数格式不正确", label = "单品重量(g)")
  private String basisWeight;

  /** 包装规格(cm) */
  @ExcelProperty("包装规格(cm)")
  @DecimalString(message = "包装规格(cm)小数格式不正确", label = "包装规格(cm)")
  private String packingSpecification;

  /** 可用收货量 */
  @ExcelProperty("可用收货量")
  @LongString(message = "可用收货量数值格式不正确", label = "可用收货量")
  private String availableGoodsReceived;

  /** 可用代收量 */
  @ExcelProperty("可用代收量")
  @LongString(message = "可用代收量数值格式不正确", label = "可用代收量")
  private String availableForCollection;

  /** 可用盈亏量 */
  @ExcelProperty("可用盈亏量")
  @LongString(message = "可用盈亏量数值格式不正确", label = "可用盈亏量")
  private String availableProfitLoss;

  /** 次品收货量 */
  @ExcelProperty("次品收货量")
  @LongString(message = "次品收货量数值格式不正确", label = "次品收货量")
  private String defectiveGoodsReceived;

  /** 次品代收量 */
  @ExcelProperty("次品代收量")
  @LongString(message = "次品代收量数值格式不正确", label = "次品代收量")
  private String defectiveGoodsCollected;

  /** 次品盈亏量 */
  @ExcelProperty("次品盈亏量")
  @LongString(message = "次品盈亏量数值格式不正确", label = "次品盈亏量")
  private String defectiveProfitLoss;

  /** 入库可用仓位 */
  @ExcelProperty("入库可用仓位")
  @Size(max = 50, message = "入库可用仓位长度不能超过50")
  private String toGoodWarehouseBinStorageBin;

  @ExcelIgnore
  @Schema(title = "入库可用仓位")
  private String toGoodWarehouseBin;

  /** 入库次品仓位 */
  @ExcelProperty("入库次品仓位")
  @Size(max = 50, message = "入库次品仓位长度不能超过50")
  private String toBadWarehouseBinStorageBin;

  @ExcelIgnore
  @Schema(title = "入库次品仓位")
  private String toBadWarehouseBin;

  /** 合计 */
  @ExcelProperty("合计")
  private String total;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;
}
